package com.ruoyi.system.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 需求变更申请审核DTO
 * 
 * @author ruoyi
 * @since 2024-01-01
 */
@Data
public class DemandChangeRequestAuditDTO {

    /**
     * 变更申请ID
     */
    @NotNull(message = "申请ID不能为空")
    private Long requestId;

    /**
     * 审核结果
     * pass-审核通过，reject-审核驳回
     */
    @NotBlank(message = "审核结果不能为空")
    private String auditResult;

    /**
     * 审核意见
     */
    @NotBlank(message = "审核意见不能为空")
    private String auditOpinion;

    /**
     * 审核确认的变更影响范围
     */
    private ImpactScopeDTO auditImpactScope;

    /**
     * 同步模块列表
     */
    private List<String> syncModules;

    /**
     * 变更影响范围DTO
     */
    @Data
    public static class ImpactScopeDTO {
        /**
         * 是否影响工期
         */
        private Boolean affectSchedule;

        /**
         * 预计增减天数
         */
        private String scheduleChange;

        /**
         * 是否影响成本
         */
        private Boolean affectCost;

        /**
         * 预计增减金额
         */
        private String costChange;

        /**
         * 其他影响
         */
        private String otherImpact;

        /**
         * 调整理由
         */
        private String adjustReason;
    }
}
